package edu.upenn.cis.cis550.hw3.client;

import java.util.ArrayList;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("UpdateTables")
public interface UpdateTables extends RemoteService {
	
	/**
	 * Utility class for simplifying access to the instance of async service.
	 */
	public static class Util {
		private static UpdateTablesAsync instance;
		public static UpdateTablesAsync getInstance(){
			if (instance == null) {
				instance = GWT.create(UpdateTables.class);
			}
			return instance;
		}
	}

	public String addUser(String firstName, String lastName, String email, String dob, String gender);
	
	public String addCircle(int userID, String name);
	
	public String addFriend(int userID, int friendID, String circleName);
	
	public String addPhoto(int userID, String url, String description, String photoTime, int visibility, ArrayList<String> ids);
	
	public String addTag(int photoID, String tag);
	
	public String addRating(int userID, int photoID,int rating);
	
	public String addComment(int userID, int photoID, String comment, String timeStamp);
	
	public void addAddress(int userID, String street, String city, String state, String zip);
	
	public void addInterest(String interest);
	
	public void addInterestToUser(int userID, int interestID);
	
	public void addLogin(int userID, String password);
	
	public boolean addStudent(int userID, int year, String course, float GPA, String college);
	
	public boolean addProfessor(int userID, String office, String researchArea, String title, String college);
	
	public void addAdvisesRelationship(int profID, int studentID, int years);
	
	public String getUsers();
}

